// pages/song/song.js

import Pubsub from 'pubsub-js'
import axios from '../../utils/axios'

//获取App实例
Page({
  /**
   * 页面的初始数据
   */
  data: {
    songid: null, //存放当前歌曲的id
    songInfo: {}, //存放歌曲名字及图片数据
    isplay: false, //控制歌曲是是否播放
    musicUrl: '', //存放歌曲URL
    like:false//是否收藏（喜欢）歌曲
  },

  // 是否喜欢改歌曲
  like(){
    axios('/like',{id:this.data.songid,like:!this.data.like})
    this.setData({
      like:!this.data.like
    })
  },


  // 用户点击了切歌按钮
  switchMusic(e) {
    Pubsub.publish('switchType', e.currentTarget.id)
  },

  // 用于控制播放的回调函数
  Play() {
    this.setData({
      isplay: !this.data.isplay
    })
    if (this.data.isplay) {
      this.BackgroundAudioManager.play()
    } else {
      this.BackgroundAudioManager.pause()
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  // 封装获取歌曲信息的函数
  async getSongInfo(songid) {
    const res = await axios('/song/detail', {
      ids: songid
    })
    this.setData({
      songInfo: res.songs[0],
    })
  },

  // 获取歌曲URL
  async getMusicUrl(songid) {
    const res2 = await axios('/song/url', {
      id: songid
    })
    this.setData({
      musicUrl: res2.data[0].url
    })
    // 调用微信提供的api播放和暂停歌曲
    this.BackgroundAudioManager.src = this.data.musicUrl,
      this.BackgroundAudioManager.title = this.data.songInfo.name
  },

  onLoad: async function (options) {
    //获取背景音乐配置实例
    this.BackgroundAudioManager = wx.getBackgroundAudioManager()
    // console.log(options.songid);
    // 获取歌曲名字，图片信息
    await this.getSongInfo(options.songid)
    // 获取歌曲URL
    await this.getMusicUrl(options.songid)

    this.setData({
      songid: options.songid,
    })

    // 页面一进来就播放歌曲
    this.setData({
      isplay: !this.data.isplay
    })


    // 由于当前的页面标题,只有等到请求成功之后才能确定,所以需要使用动态注入的方法实现
    wx.setNavigationBarTitle({
      title: this.data.songInfo.name
    })

    // 挂载的时候需要订阅将来会传过来的新songid
    Pubsub.subscribe('sendnewsongid', (_, newsongid) => {
      this.setData({
        songid: newsongid
      })
      this.getSongInfo(this.data.songid)
      this.getMusicUrl(this.data.songid)
    })
  },

  // 去歌曲评论页面
  toComment(){
    wx.navigateTo({
      url: '/pages/comment/comment?songid='+this.data.songid,
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */

  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    Pubsub.unsubscribe('sendnewsongid')
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})